In this section we want to describe the first steps that will make the user in his first contact with the CAMMING device. Also you will describe some usage examples of the device.
We can divide in the following sections, the proceed of the operation:
As was already explained in the description of the CAMMING device, you must program properly the unit application configuration. It is very important to the piece of code that declares the device, here you should indicate the hardware resources to be used to ensure proper operation. It will be the responsibility of the programmer to pick and choose the most appropriate inputs and outputs. For example with the following line of code:
;--------------------------------- ; Internal devices declaration ;--------------------------------- INTDEVICE device_name CAMMING3 TCamp CountS CountMA CountMB IntL IAZero IntLM IAZeroM InG InGInt IoutA Out Axis CAMMING3 2 2.CNT01 2.CNT02 1.CNT01 1 2.INP01 2 2.INP02 2.INP03 5 2.AN01 2.OUT01
You define a CAMMING3 device with “Axis” name where the sampling time is 2 ms. The following are declared all hardware resources necessary for the use of the device, the detailed description is listed in the documentation for your device.
An application that has just inside the device Declaration in configuration unit and a qcl unit that it does not run anything (unless forced to WAIT) already allows to perform the first operations using the capabilities of the device. In fact after downloading the application tool and have done turn, will can change the parameters, observe the States or give commands to devices using the appropriate monitor from QView.
This is very convenient in the early stages of planning when you just want to make some runs or being debugged.
Once declared hardware resources properly to use you need to set some parameters as components that are connected to the Qmove product.
Consider the case where the transducer is a bi-directional digital encoder. Suppose that the encoder is directly keyed on an engine that should move the slave axis. You will need to set correctly the measure and pulse the parameters of the device so that it can interpret the pulses arriving at QMove, the instrument will then calculate the position of the axis. The measure and pulse introduction establishes a correspondence between a space in a unit of your choice and a certain number of pulses. In the event that the user already knows the space covered in a round encoder then you'll proceed directly to insert the values.
Example: If the encoder emits 1000 pulses/Rev and you know that the axis moves about 5 cm When the encoder performs exactly one lap then you can insert the following values:
AsseX:measure = 50; AsseX:pulse = 4000
The measure value introduced involves choosing a unit of measure of mm for measuring positions, in the pulse parameter it was introduced a value equal to the number of encoder impulses multiplied by 4. It is remember that the measure/pulse relationship must be a value between 0.00935 and 1 (for compliance with the limits of accuracy of the device and the product QMove). It's important to remember that the values described above are taken as reference: it's not necessary to introduce the parameters with reference to an encoder revolution as we will describe below.
When the user does not know the measurement parameters, will still be able to make the correct calibration by following these steps:
The encoder resolution is now correctly set.
Another important step to take is to set the maxpos and minpos parameters that define respectively the maximum and the minimum position accessible from axis.
![]() | Nota: È necessario effettuare questa procedura due volte in modo da tarare correttamente sia l'asse master che l'asse slave |
|---|
The CAMMING device to measure the speed of the slave axis. The unit of measurement of the instantaneous speed of the axis is chosen through unitvel and decpt parameters. You can select the unit of time of speed with the unitvel parameter: if this is equal to 0 then the speed is measured in Um/min, If it is equal to 1 then is measured in Um/s. The decpt parameter instead determines whether multiple rate-measuring the fundamental unit of measure Um. For example, If the fundamental unit of measure is Um=mm, and unitvel=1 you get the speed indicator in the vel variable in:
mm/s (con decpt = 0),
cm/s (con decpt = 1),
dm/s (con decpt = 2),
m/s (con decpt = 3).
Later, if needed, you need to set the proper display on the terminal operator to adjust the correct decimal point position.
![]() | Attenzione: prima di effettuare dei posizionamenti veri e propri è necessario verificare che collegamenti ed organi meccanici non siano causa di malfunzionamenti. |
|---|
Esaminiamo il caso in cui il device CAMMING utilizzi un'uscita analogica implementata con un dispositivo DAC per comandare l'asse slave: questo assumerà in ingresso valori discreti con risoluzione 16 bit (perciò compresi fra -32768 e 32767) per dare in uscita una tensione analogica con range ±10V. Con la funzione di calibrazione questa uscita analogica può essere pilotata con un valore costante con lo scopo di verificare collegamenti e funzionalità.
In questa sezione vengono descritte le operazioni da effettuare per verificare la correttezza dei collegamenti e la funzionalità del sistema che è stato costruito.
Il device EANPOS genera il valore di tensione dell'uscita analogica sulla base di una proporzione tra la velocità massima dell'asse e la massima tensione di uscita. Per fare ciò è necessario impostare il parametro maxvel, ovvero la velocità con cui si muove l'asse quando viene data tensione massima all'azionamento. Ovviamente l'asse deve avere un comportamento simmetrico rispetto al valore zero di tensione analogica, quindi la velocità deve essere la stessa (in modulo) alla tensione massima sia positiva che negativa.
Per conoscere la velocità massima esistono due vie: il “metodo teorico” presuppone di conosce la velocità massima del motore (giri massimi dichiarati) da cui si può ricavare facilmente la velocità lineare.
Se non si è a conoscenza della velocità massima dichiarata del motore si deve procedere in questo modo:
Ora è quindi possibile introdurre il valore della velocità massima nel parametro maxvel.
Attenzione:
prima di movimentare l'asse, verificare il corretto funzionamento dei dispositivi d'emergenza e protezione.
Le procedure fin qui descritte hanno permesso di completare la prima fase di parametrizzazione del device. Ora è possibile eseguire una semplice movimentazione dell'asse. Seguire ad esempio i seguenti passi:
Questa prima movimentazione è stata eseguita senza attivare l'anello di reazione di spazio, quindi qualsiasi errore introdotto da valori di tensione di offset o da agenti esterni non viene corretto.
Consideriamo ad esempio un'applicazione per spandifilo, i passi che dovrà seguire l'asse slave sono:
| Settore 1 | accelerazione con partenza da velocità nulla e arrivo a velocità preimpostata (codeG 131) con incremento positivo della posizione slave; è necessario calcolare correttamente il rapporto fra le quote master e slave perché la velocità di uscita sia corretta |
| Settore 2 | tratto a velocità costante (codeG 133) con incremento positivo della posizione slave |
| Settore 3 | decelerazione con velocità finale 0 (codeG 135) con incremento positivo della posizione slave |
| Settore 4 | arresto dell'asse slave (codeG 133): si programma la quota master come desiderata mentre si lascia nulla quella slave |
| Settore 5 | accelerazione con partenza da velocità nulla e arrivo a velocità preimpostata (codeG 131) con decremento della posizione slave; è necessario calcolare correttamente il rapporto fra le quote master e slave perché la velocità di uscita sia corretta (è possibile utilizzare gli stessi valori del settore 1 con quota slave negativa) |
| Settore 6 | tratto a velocità costante (codeG 133) con decremento della posizione slave |
| Settore 7 | decelerazione con velocità finale 0 (codeG 135) con decremento della posizione slave |
| Settore 8 | arresto dell'asse slave (codeG 133): si programma la quota master come desiderata mentre si lascia nulla quella slave |
Dopo l'esecuzione del settore 8 si potranno eseguire delle funzioni che eseguono il ri-fasamento delle posizioni master e slave in impulsi primari sottraendo lo spazio percorso fino a fine settore; in seguito sarà possibile ri-eseguire automaticamente le camma.
Consideriamo ad esempio un'applicazione per un semplice taglio al volo, i passi che dovrà seguire l'asse slave sono:
Settore 1: accelerazione con partenza da velocità nulla e arrivo alla stessa velocità del master (codeG 132) con incremento positivo della posizione slave. Settore 2: tratto intermedio a velocità costante (codeG 133) con incremento positivo della posizione slave. In questo settore master e slave percorreranno lo stesso spazio. Settore 3: accelerazione e incremento positivo della posizione dell'asse slave. Il settore impostato non è di accelerazione (codeG 133), per fare accelerare lo slave si dovrà impostare uno spazio maggiore rispetto il master. Settore 4: tratto a velocità costante e incremento positivo della posizione slave (codeG 133). Settore 5: decelerazione con incremento positivo della posizione slave (codeG 133). Si riporta lo slave alla stessa velocità del master, perciò la quota dovrà essere calcolata correttamente. Settore 6: decelerazione con velocità finale 0 (codeG 135) con decremento della posizione slave. Settore 7: accelerazione con partenza da velocità nulla e arrivo a velocità preimpostata (codeG 131) con decremento della posizione slave. Settore 8: tratto a velocità costante (codeG 133) con decremento della posizione slave. Settore 9: decelerazione con velocità finale 0 (codeG 135) con decremento della posizione slave.
Dopo l'esecuzione del settore 9 si potranno eseguire delle funzioni che eseguono il ri-fasamento delle posizioni master e slave in impulsi primari sottraendo lo spazio percorso fino a fine settore; in seguito sarà possibile ri-eseguire automaticamente le camma.
Come è stato spiegato nella descrizione del device CAMMING è possibile che l'asse master sia reale oppure simulata, una via per realizzare un master simulato è dichiarare per il device CAMMING un indirizzo di un trasduttore simulato utilizzando un device di posizionamento (ad esempio EANPOS) dichiarato con il contatore sullo slot 1 (normalmente riservato alla CPU del sistema) e tutte le altre risorse disabilitate.
;--------------------------------- ; Dichiarazione device interni ;--------------------------------- INTDEVICE ... <nome_device> EANPOS TCamp ICont IntL IAZero IOutA Master EANPOS 2 1.CNT01 X X.X X.X
Il device così configurato viene considerato come un master simulato, esso viene comandato come fosse un normale device tenendo presente che il loop di regolazione deve essere aperto e di conseguenza non serve parametrizzare il PID, è sufficiente impostare il feedforward a 100%.
Si vuole utilizzare il device EANPOs configurato nell'esempio appena descritto e si ipotizza che il master simulato debba continuare il suo movimento all'infinito.
;------------------------------------------------------------
; Gestione del master simulato
;------------------------------------------------------------
Master:measure = 1000 ;impostazioni parametri master
Master:pulse = 4000
Master:decpt = 0
Master:unitvel = 1
Master:maxvel = 1000
Master:taccdec = 100
Master:maxpos = 999999
Master:minpos = -999999
INIT Master ;inizializzazione master simulato
WAIT Master:st_init
LOOPOFF Master
WAIT NOT Master:st_loopon
RESUME Master
WAIT NOT Master:st_emrg
MAIN:
IF sf01 ;flag che da lo start al master
IF Master: st_still
Master:posit = 0
Master:setvel = 500
Master:setpos = 999999
START Master ;comando di START
ENDIF
IF Master:posit GE 500000 ;aggiorno la posizione per non causare
;un oveflow
Master:posit = 0
ENDIF
ELSE
IF NOT Master:st_still ;stop del master simulato
STOP Master
ENDIF
ENDIF
WAIT 1
JUMP MAIN
END